package computerPlayer;

import java.awt.Color;
import java.util.concurrent.Callable;

import miniMax.TicTacToeFramework;

public abstract class Player implements  Callable<Integer> {
		
		private String playerChar;
		private String playerName;
		private TicTacToeFramework game;
		private boolean artificalPlayer = true;
		private Player otherPlayer;
		private Color color;
		
		public Player(TicTacToeFramework model, Player otherPlayer){
			
		}
		
		public Player(final String playerCharPar, final String playerNamePar) {
			this.playerChar = playerCharPar;
			this.playerName = playerNamePar;
		}
		public final String getPlayerChar() {
			return playerChar;
		}
		public final String getPlayerName() {
			return playerName;
		}
		public final void setPlayerChar(String charParam){
			this.playerChar = charParam;
		}
		
		public abstract int makeMove();
		public abstract Integer call() throws Exception;
		public abstract void reset(TicTacToeFramework game);
		public TicTacToeFramework getGame() {
			return game;
		}
		public void setGame(TicTacToeFramework game) {
			this.game = game;
		}
		public boolean isArtificalPlayer() {
			return artificalPlayer;
		}
		public void setArtificalPlayer(boolean artificalPlayer) {
			this.artificalPlayer = artificalPlayer;
		}
		public Player getOtherPlayer() {
			return otherPlayer;
		}
		public void setOtherPlayer(Player otherPlayer) {
			this.otherPlayer = otherPlayer;
		}

		public void setColor(Color color) {
			this.color = color;
		}

		public Color getColor() {
			return color;
		}
}
